package fachklassen.controls;

import java.util.HashMap;
import fachklassen.entities.Bestellung;

public class Bestellungsverwaltung {
	
	private HashMap<Integer,Bestellung> bestellungen;
	private Kundenverwaltung kv;
	private Produktverwaltung pv;
	
	public Bestellungsverwaltung(Kundenverwaltung kv, Produktverwaltung pv) {
		this.kv = kv;
		this.pv = pv;
		bestellungen = new HashMap<Integer,Bestellung>();
	}
	
	/*?*/
	public void neueBestellungAltkunde(int knr) {		
		Bestellung b = new Bestellung(knr, kv);
		bestellungen.put(b.getBstnr(), b);
	}
	
	public void bestellungErgaenzen(int bstnr, int prodNr, int anzahl) {
		Bestellung b = bestellungen.get(bstnr);
		b.ergaenzen(prodNr, anzahl, pv);
	}
	
	public void bestellungAendern(int bstnr, int prodNr, int anzahl) {
		Bestellung b = bestellungen.get(bstnr);
		b.aendern(prodNr, anzahl);
	}
	
	public void bestellungPostenLoeschen(int bstnr, int prodNr) {
		Bestellung b = bestellungen.get(bstnr);
		b.loeschen(prodNr);
	}
	
	public String bestellungZeigen(int bstnr) {
		Bestellung b = bestellungen.get(bstnr);
		return b.toString();
	}
	
	public int berechneGesamtpreis(int bstnr) {
		Bestellung b = bestellungen.get(bstnr);
		return b.preisBerechnen();
	}
	
	/* Aufgabenteil c */
	public int berechneAnzahlBestellungen(int knr) {
		int e = 0;
		for(int bstnr : bestellungen.keySet()) {
			Bestellung b = bestellungen.get(bstnr);
			if(b.gibKundennummer() == knr) {
				e++;
			}
		}
		return e;
	}
	
	public int berechneAnzahlProdukt(int prodNr) {
		int e = 0;
		for(int bstnr : bestellungen.keySet()) {
			Bestellung b = bestellungen.get(bstnr);
			e += b.mengeProduktBerechnen(prodNr);
		}
		return e;
	}
	/* Aufgabenteil c ENDE */
	/*/?*/
	
	@Override
	public String toString(){
		StringBuffer sb= new StringBuffer();
		for (Bestellung b:bestellungen.values()){
			sb.append(b.toString());
			sb.append("\n");
		}
		return sb.toString();
	}
}
